Enterprises frequently store data in data warehouses. Such data warehouses often have large volumes of data spread out over multiple databases and database tables. Therefore, in order to compile data from the numerous tables and databases, data aggregation techniques must be utilized.
Low Level Aggregate (LLA) tables, which store a summary of data at a lower level, are frequently used to improve the performance of the aggregation process in a data warehouse. In the case of a distributed database stored on multiple partitions, an LLA table can be utilized for each partition and an aggregation process can combine the data from each of the LLA tables to generate an aggregated table for the entire database. Such an aggregation process is known as a roll-up process, and is useful because a higher level of summary can be generated from a lower level of summary (the LLA table), rather than from the source data.
Roll-up processes can be utilized for an aggregate query over multiple data partitions in the context of a Massively Parallel Processing (MPP) database architecture, or to run queries on a partitioned table.
In order to correctly aggregate data from multiple tables during a roll-up process, the underlying function that is being aggregated must additive. For example, if a first table and a second table both have a column corresponding to spending amounts, and a user desires to compute the sum of all the spending amounts in both tables, they can additively aggregate the sum of the spending amounts in first table and the sum of the spending amounts in the second table and arrive at the correct total sum. However, not all functions that users may wish to aggregate in a roll-up process are additive functions.